import { Rule } from "./types";

export const LintRules: Rule[] = [
    {
        id: "Lint/AmbiguousAssignment",
        enabled: "pending",
        descEn: "Checks for mistyped shorthand assignments",
        descCn: "",
        versionAdded: "1.7",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintambiguousassignment",
    },
    {
        id: "Lint/AmbiguousBlockAssociation",
        enabled: true,
        descEn: "Checks for ambiguous block association with method when param passed without parentheses.",
        descCn: "",
        versionAdded: "0.48",
        versionChanged: "1.13",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: [],
            },
            {
                param: "AllowedPatterns",
                defaultValue: [],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintambiguousblockassociation",
    },
    {
        id: "Lint/AmbiguousOperator",
        enabled: true,
        descEn: "Checks for ambiguous operators in the first argument of a method invocation without parentheses.",
        descCn: "",
        versionAdded: "0.17",
        versionChanged: "0.83",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintambiguousoperator",
    },
    {
        id: "Lint/AmbiguousOperatorPrecedence",
        enabled: "pending",
        descEn: "Checks for expressions containing multiple binary operations with ambiguous precedence.",
        descCn: "",
        versionAdded: "1.21",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintambiguousoperatorprecedence",
    },
    {
        id: "Lint/AmbiguousRange",
        enabled: "pending",
        descEn: "Checks for ranges with ambiguous boundaries",
        descCn: "",
        versionAdded: "1.19",
        paramList: [
            {
                param: "RequireParenthesesForMethodChains",
                defaultValue: false,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintambiguousrange",
    },
    {
        id: "Lint/AmbiguousRegexpLiteral",
        enabled: true,
        descEn: "Checks for ambiguous regexp literals in the first argument of a method invocation without parentheses.",
        descCn: "",
        versionAdded: "0.17",
        versionChanged: "0.83",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintambiguousregexpliteral",
    },
    {
        id: "Lint/AssignmentInCondition",
        enabled: true,
        descEn: "Don't use assignment in conditions.",
        descCn: "",
        versionAdded: "0.9",
        versionChanged: "1.45",
        paramList: [
            {
                param: "AllowSafeAssignment",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintassignmentincondition",
    },
    {
        id: "Lint/BigDecimalNew",
        enabled: true,
        descEn: "BigDecimal.new()` is deprecated. Use `BigDecimal()` instead",
        descCn: "",
        versionAdded: "0.53",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintbigdecimalnew",
    },
    {
        id: "Lint/BinaryOperatorWithIdenticalOperands",
        enabled: true,
        descEn: "Checks for places where binary operator has identical operands.",
        descCn: "",
        versionAdded: "0.89",
        versionChanged: "1.7",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintbinaryoperatorwithidenticaloperands",
    },
    {
        id: "Lint/BooleanSymbol",
        enabled: true,
        descEn: "Check for `:true` and `:false` symbols.",
        descCn: "",
        versionAdded: "0.50",
        versionChanged: "1.22",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintbooleansymbol",
    },
    {
        id: "Lint/CircularArgumentReference",
        enabled: true,
        descEn: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument.",
        descCn: "",
        versionAdded: "0.33",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintcircularargumentreference",
    },
    {
        id: "Lint/ConstantDefinitionInBlock",
        enabled: true,
        descEn: "Do not define constants within a block.",
        descCn: "",
        versionAdded: "0.91",
        versionChanged: "1.3",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: ["enums"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintconstantdefinitioninblock",
    },
    {
        id: "Lint/ConstantOverwrittenInRescue",
        enabled: "pending",
        descEn: "Checks for overwriting an exception with an exception result by use `rescue =>`.",
        descCn: "",
        versionAdded: "1.31",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintconstantoverwritteninrescue",
    },
    {
        id: "Lint/ConstantResolution",
        enabled: false,
        descEn: "Check that constants are fully qualified with `::`.",
        descCn: "",
        versionAdded: "0.86",
        paramList: [
            {
                param: "Only",
                defaultValue: [],
            },
            {
                param: "Ignore",
                defaultValue: [],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintconstantresolution",
    },
    {
        id: "Lint/Debugger",
        enabled: true,
        descEn: "Check for debugger calls.",
        descCn: "",
        versionAdded: "0.14",
        versionChanged: "1.46",
        paramList: [
            {
                param: "DebuggerMethods",
                defaultValue: {
                    "Kernel": ["binding.irb", "Kernel.binding.irb"],
                    "Byebug": ["byebug", "remote_byebug", "Kernel.byebug", "Kernel.remote_byebug"],
                    "Capybara": ["save_and_open_page", "save_and_open_screenshot"],
                    "debug.rb": ["binding.b", "binding.break", "Kernel.binding.b", "Kernel.binding.break"],
                    "Pry": ["binding.pry", "binding.remote_pry", "binding.pry_remote", "Kernel.binding.pry", "Kernel.binding.remote_pry", "Kernel.binding.pry_remote", "Pry.rescue", "pry"],
                    "Rails": ["debugger", "Kernel.debugger"],
                    "RubyJard": ["jard"],
                    "WebConsole": ["binding.console"],
                },
                validValue: (value: unknown) => {
                    if (typeof value !== "object") {
                        return "值必须是一个对象";
                    }
                    for (const [_, v] of Object.entries(value as Object)) {
                        if (!Array.isArray(v)) {
                            return "对象内的值必须是字符串数组";
                        }
                        for (const av of v) {
                            if (typeof av !== "string") {
                                return "对象内的值必须是字符串数组";
                            }
                        }
                    }
                    return null;
                }
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintdebugger",
    },
    {
        id: "Lint/DeprecatedClassMethods",
        enabled: true,
        descEn: "Check for deprecated class method calls.",
        descCn: "",
        versionAdded: "0.19",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintdeprecatedclassmethods",
    },
    {
        id: "Lint/DeprecatedConstants",
        enabled: "pending",
        descEn: "Checks for deprecated constants.",
        descCn: "",
        versionAdded: "1.8",
        versionChanged: "1.40",
        paramList: [
            {
                param: "DeprecatedConstants",
                defaultValue: {
                    "NIL": { "Alternative": "nil", "DeprecatedVersion": "2.4" },
                    "TRUE": { "Alternative": "true", "DeprecatedVersion": "2.4" },
                    "FALSE": { "Alternative": "false", "DeprecatedVersion": "2.4" },
                    "Net::HTTPServerException": { "Alternative": "Net::HTTPClientException", "DeprecatedVersion": "2.6" },
                    "Random::DEFAULT": { "Alternative": "Random.new", "DeprecatedVersion": "3.0" },
                    "Struct::Group": { "Alternative": "Etc::Group", "DeprecatedVersion": "3.0" },
                    "Struct::Passwd": { "Alternative": "Etc::Passwd", "DeprecatedVersion": "3.0" },
                },
                validValue: (value: unknown) => {
                    if (typeof value !== "object") {
                        return "值必须是一个对象";
                    }
                    for (const [_, v] of Object.entries(value as Object)) {
                        if (typeof v != "object") {
                            return "内部值必须是一个对象";
                        }
                        for (const [ik, iv] of Object.entries(v as Object)) {
                            if (!["Alternative", "DeprecatedVersion"].includes(ik)) {
                                return "内部对象只能包含Alternative，DeprecatedVersion";
                            }
                            if (typeof iv !== "string") {
                                return "内部对象值必须是字符串";
                            }
                        }
                    }
                    return null;
                },
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintdeprecatedconstants",
    },
    {
        id: "Lint/DeprecatedOpenSSLConstant",
        enabled: true,
        descEn: "Don't use algorithm constants for `OpenSSL::Cipher` and `OpenSSL::Digest`.",
        descCn: "",
        versionAdded: "0.84",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintdeprecatedopensslconstant",
    },
    {
        id: "Lint/DisjunctiveAssignmentInConstructor",
        enabled: true,
        descEn: "In constructor, plain assignment is preferred over disjunctive.",
        descCn: "",
        versionAdded: "0.62",
        versionChanged: "0.88",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintdisjunctiveassignmentinconstructor",
    },
    {
        id: "Lint/DuplicateBranch",
        enabled: "pending",
        descEn: "Checks that there are no repeated bodies within `if/unless`, `case-when` and `rescue` constructs.",
        descCn: "",
        versionAdded: "1.3",
        versionChanged: "1.7",
        paramList: [
            {
                param: "IgnoreLiteralBranches",
                defaultValue: false,
            },
            {
                param: "IgnoreConstantBranches",
                defaultValue: false,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicatebranch",
    },
    {
        id: "Lint/DuplicateCaseCondition",
        enabled: true,
        descEn: "Do not repeat values in case conditionals.",
        descCn: "",
        versionAdded: "0.45",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicatecasecondition",
    },
    {
        id: "Lint/DuplicateElsifCondition",
        enabled: true,
        descEn: "Do not repeat conditions used in if `elsif`",
        descCn: "",
        versionAdded: "0.88",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicateelsifcondition",
    },
    {
        id: "Lint/DuplicateHashKey",
        enabled: true,
        descEn: "Check for duplicate keys in hash literals.",
        descCn: "",
        versionAdded: "0.34",
        versionChanged: "0.77",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicatehashkey",
    },
    {
        id: "Lint/DuplicateMagicComment",
        enabled: "pending",
        descEn: "Check for duplicated magic comments.",
        descCn: "",
        versionAdded: "1.37",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicatemagiccomment",
    },
    {
        id: "Lint/DuplicateMatchPattern",
        enabled: "pending",
        descEn: "Do not repeat patterns in `in` keywords.",
        descCn: "",
        versionAdded: "1.50",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicatematchpattern",
    },
    {
        id: "Lint/DuplicateMethods",
        enabled: true,
        descEn: "Check for duplicate method definitions",
        descCn: "",
        versionAdded: "0.29",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicatemethods",
    },
    {
        id: "Lint/DuplicateRegexpCharacterClassElement",
        enabled: true,
        descEn: "Checks for duplicate elements in Regexp character classes.",
        descCn: "",
        versionAdded: "1.1",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicateregexpcharacterclasselement",
    },
    {
        id: "Lint/DuplicateRequire",
        enabled: true,
        descEn: "Check for duplicate `require`s and `require_relative`s.",
        descCn: "",
        versionAdded: "0.90",
        versionChanged: "1.28",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicaterequire",
    },
    {
        id: "Lint/DuplicateRescueException",
        enabled: true,
        descEn: "Checks that there are no repeated exceptions used in `rescue` expressions.",
        descCn: "",
        versionAdded: "0.89",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintduplicaterescueexception",
    },
    {
        id: "Lint/EachWithObjectArgument",
        enabled: true,
        descEn: "Check for immutable argument given to each_with_object.",
        descCn: "",
        versionAdded: "0.31",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linteachwithobjectargument",
    },
    {
        id: "Lint/ElseLayout",
        enabled: true,
        descEn: "Check for odd code arrangement in an else block.",
        descCn: "",
        versionAdded: "0.17",
        versionChanged: "1.2",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintelselayout",
    },
    {
        id: "Lint/EmptyBlock",
        enabled: "pending",
        descEn: "Checks for blocks without a body.",
        descCn: "",
        versionAdded: "1.1",
        versionChanged: "1.15",
        paramList: [
            {
                param: "AllowComments",
                defaultValue: true,
            },
            {
                param: "AllowEmptyLambdas",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyblock",
    },
    {
        id: "Lint/EmptyClass",
        enabled: "pending",
        descEn: "Checks for classes and metaclasses without a body.",
        descCn: "",
        versionAdded: "1.3",
        paramList: [
            {
                param: "AllowComments",
                defaultValue: false,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyclass",
    },
    {
        id: "Lint/EmptyConditionalBody",
        enabled: true,
        descEn: "Checks for the presence of `if`, `elsif` and `unless` branches without a body.",
        descCn: "",
        versionAdded: "0.89",
        versionChanged: "1.34",
        paramList: [
            {
                param: "AllowComments",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyconditionalbody",
    },
    {
        id: "Lint/EmptyEnsure",
        enabled: true,
        descEn: "Checks for empty ensure block.",
        descCn: "",
        versionAdded: "0.10",
        versionChanged: "0.48",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyensure",
    },
    {
        id: "Lint/EmptyExpression",
        enabled: true,
        descEn: "Checks for empty expressions.",
        descCn: "",
        versionAdded: "0.45",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyexpression",
    },
    {
        id: "Lint/EmptyFile",
        enabled: true,
        descEn: "Enforces that Ruby source files are not empty.",
        descCn: "",
        versionAdded: "0.90",
        paramList: [
            {
                param: "AllowComments",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyfile",
    },
    {
        id: "Lint/EmptyInPattern",
        enabled: "pending",
        descEn: "Checks for the presence of `in` pattern branches without a body.",
        descCn: "",
        versionAdded: "1.16",
        paramList: [
            {
                param: "AllowComments",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyinpattern",
    },
    {
        id: "Lint/EmptyInterpolation",
        enabled: true,
        descEn: "Checks for empty string interpolation.",
        descCn: "",
        versionAdded: "0.20",
        versionChanged: "0.45",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptyinterpolation",
    },
    {
        id: "Lint/EmptyWhen",
        enabled: true,
        descEn: "Checks for `when` branches with empty bodies.",
        descCn: "",
        versionAdded: "0.45",
        versionChanged: "0.83",
        paramList: [
            {
                param: "AllowComments",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintemptywhen",
    },
    {
        id: "Lint/EnsureReturn",
        enabled: true,
        descEn: "Do not use return in an ensure block.",
        descCn: "",
        versionAdded: "0.9",
        versionChanged: "0.83",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintensurereturn",
    },
    {
        id: "Lint/ErbNewArguments",
        enabled: true,
        descEn: "Use `:trim_mode` and `:eoutvar` keyword arguments to `ERB.new`.",
        descCn: "",
        versionAdded: "0.56",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linterbnewarguments",
    },
    {
        id: "Lint/FlipFlop",
        enabled: true,
        descEn: "Checks for flip-flops.",
        descCn: "",
        versionAdded: "0.16",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintflipflop",
    },
    {
        id: "Lint/FloatComparison",
        enabled: true,
        descEn: "Checks for the presence of precise comparison of floating point numbers.",
        descCn: "",
        versionAdded: "0.89",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintfloatcomparison",
    },
    {
        id: "Lint/FloatOutOfRange",
        enabled: true,
        descEn: "Catches floating-point literals too large or small for Ruby to represent.",
        descCn: "",
        versionAdded: "0.36",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintfloatoutofrange",
    },
    {
        id: "Lint/FormatParameterMismatch",
        enabled: true,
        descEn: "The number of parameters to format/sprint must match the fields.",
        descCn: "",
        versionAdded: "0.33",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintformatparametermismatch",
    },
    {
        id: "Lint/HashCompareByIdentity",
        enabled: true,
        descEn: "Prefer using `Hash#compare_by_identity` than using `object_id` for keys.",
        descCn: "",
        versionAdded: "0.93",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linthashcomparebyidentity",
    },
    {
        id: "Lint/HeredocMethodCallPosition",
        enabled: false,
        descEn: "Checks for the ordering of a method call where the receiver of the call is a HEREDOC",
        descCn: "",
        versionAdded: "0.68",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintheredocmethodcallposition",
    },
    {
        id: "Lint/IdentityComparison",
        enabled: true,
        descEn: "Prefer `equal?` over `==` when comparing `object_id`.",
        descCn: "",
        versionAdded: "0.91",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintidentitycomparison",
    },
    {
        id: "Lint/ImplicitStringConcatenation",
        enabled: true,
        descEn: "Checks for adjacent string literals on the same line, which could better be represented as a single string literal.",
        descCn: "",
        versionAdded: "0.36",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintimplicitstringconcatenation",
    },
    {
        id: "Lint/IncompatibleIoSelectWithFiberScheduler",
        enabled: "pending",
        descEn: "Checks for `IO.select` that is incompatible with Fiber Scheduler.",
        descCn: "",
        versionAdded: "1.21",
        versionChanged: "1.24",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintincompatibleioselectwithfiberscheduler",
    },
    {
        id: "Lint/IneffectiveAccessModifier",
        enabled: true,
        descEn: "Checks for attempts to use `private` or `protected` to set the visibility of a class method, which does not work.",
        descCn: "",
        versionAdded: "0.36",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintineffectiveaccessmodifier",
    },
    {
        id: "Lint/InheritException",
        enabled: true,
        descEn: "Avoid inheriting from the `Exception` class",
        descCn: "",
        versionAdded: "0.41",
        versionChanged: "1.26",
        paramList: [
            {
                param: "EnforcedStyle",
                defaultValue: "standard_error",
                optionList: ["standard_error", "runtime_error"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintinheritexception",
    },
    {
        id: "Lint/InterpolationCheck",
        enabled: true,
        descEn: "Checks for interpolation in a single quoted string.",
        descCn: "",
        versionAdded: "0.50",
        versionChanged: "1.40",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintinterpolationcheck",
    },
    {
        id: "Lint/LambdaWithoutLiteralBlock",
        enabled: "pending",
        descEn: "Checks uses of lambda without a literal block.",
        descCn: "",
        versionAdded: "1.8",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintlambdawithoutliteralblock",
    },
    {
        id: "Lint/LiteralAsCondition",
        enabled: true,
        descEn: "Checks of literals used in conditions.",
        descCn: "",
        versionAdded: "0.51",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintliteralascondition",
    },
    {
        id: "Lint/LiteralInInterpolation",
        enabled: true,
        descEn: "Checks for literals used in interpolation.",
        descCn: "",
        versionAdded: "0.19",
        versionChanged: "0.32",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintliteralininterpolation",
    },
    {
        id: "Lint/Loop",
        enabled: true,
        descEn: "Use Kernel#loop with break rather than begin/end/until or begin/end/while for post-loop tests.",
        descCn: "",
        versionAdded: "0.9",
        versionChanged: "1.3",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintloop",
    },
    {
        id: "Lint/MissingCopEnableDirective",
        enabled: true,
        descEn: "Checks for a `# rubocop:enable` after `# rubocop:disable`.",
        descCn: "",
        versionAdded: "0.52",
        paramList: [
            {
                param: "MaximumRangeSize",
                defaultValue: Infinity,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintmissingcopenabledirective",
    },
    {
        id: "Lint/MissingSuper",
        enabled: true,
        descEn: "Checks for the presence of constructors and lifecycle callbacks without calls to `super`.",
        descCn: "",
        versionAdded: "0.89",
        versionChanged: "1.4",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintmissingsuper",
    },
    {
        id: "Lint/MixedRegexpCaptureTypes",
        enabled: true,
        descEn: "Do not mix named captures and numbered captures in a Regexp literal.",
        descCn: "",
        versionAdded: "0.85",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintmixedregexpcapturetypes",
    },
    {
        id: "Lint/MultipleComparison",
        enabled: true,
        descEn: "Use `&&` operator to compare multiple values.",
        descCn: "",
        versionAdded: "0.47",
        versionChanged: "1.1",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintmultiplecomparison",
    },
    {
        id: "Lint/NestedMethodDefinition",
        enabled: true,
        descEn: "Do not use nested method definitions.",
        descCn: "",
        versionAdded: "0.32",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: [],
            },
            {
                param: "AllowedPatterns",
                defaultValue: [],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnestedmethoddefinition",
    },
    {
        id: "Lint/NestedPercentLiteral",
        enabled: true,
        descEn: "Checks for nested percent literals.",
        descCn: "",
        versionAdded: "0.52",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnestedpercentliteral",
    },
    {
        id: "Lint/NextWithoutAccumulator",
        enabled: true,
        descEn: "Do not omit the accumulator when calling `next` in a `reduce`/`inject` block.",
        descCn: "",
        versionAdded: "0.36",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnextwithoutaccumulator",
    },
    {
        id: "Lint/NoReturnInBeginEndBlocks",
        enabled: "pending",
        descEn: "Do not `return` inside `begin..end` blocks in assignment contexts.",
        descCn: "",
        versionAdded: "1.2",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnoreturninbeginendblocks",
    },
    {
        id: "Lint/NonAtomicFileOperation",
        enabled: "pending",
        descEn: "Checks for non-atomic file operations.",
        descCn: "",
        versionAdded: "1.31",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnonatomicfileoperation",
    },
    {
        id: "Lint/NonDeterministicRequireOrder",
        enabled: true,
        descEn: "Always sort arrays returned by Dir.glob when requiring files.",
        descCn: "",
        versionAdded: "0.78",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnondeterministicrequireorder",
    },
    {
        id: "Lint/NonLocalExitFromIterator",
        enabled: true,
        descEn: "Do not use return in iterator to cause non-local exit.",
        descCn: "",
        versionAdded: "0.30",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnonlocalexitfromiterator",
    },
    {
        id: "Lint/NumberConversion",
        enabled: false,
        descEn: "Checks unsafe usage of number conversion methods.",
        descCn: "",
        versionAdded: "0.53",
        versionChanged: "1.1",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: [],
            },
            {
                param: "AllowedPatterns",
                defaultValue: [],
            },
            {
                param: "IgnoredClasses",
                defaultValue: ["Time", "DateTime"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnumberconversion",
    },
    {
        id: "Lint/NumberedParameterAssignment",
        enabled: "pending",
        descEn: "Checks for uses of numbered parameter assignment.",
        descCn: "",
        versionAdded: "1.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintnumberedparameterassignment",
    },
    {
        id: "Lint/OrAssignmentToConstant",
        enabled: "pending",
        descEn: "Checks unintended or-assignment to constant.",
        descCn: "",
        versionAdded: "1.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintorassignmenttoconstant",
    },
    {
        id: "Lint/OrderedMagicComments",
        enabled: true,
        descEn: "Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.",
        descCn: "",
        versionAdded: "0.53",
        versionChanged: "1.37",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintorderedmagiccomments",
    },
    {
        id: "Lint/OutOfRangeRegexpRef",
        enabled: true,
        descEn: "Checks for out of range reference for Regexp because it always returns nil.",
        descCn: "",
        versionAdded: "0.89",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintoutofrangeregexpref",
    },
    {
        id: "Lint/ParenthesesAsGroupedExpression",
        enabled: true,
        descEn: "Checks for method calls with a space before the opening parenthesis.",
        descCn: "",
        versionAdded: "0.12",
        versionChanged: "0.83",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintparenthesesasgroupedexpression",
    },
    {
        id: "Lint/PercentStringArray",
        enabled: true,
        descEn: "Checks for unwanted commas and quotes in %w/%W literals.",
        descCn: "",
        versionAdded: "0.41",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintpercentstringarray",
    },
    {
        id: "Lint/PercentSymbolArray",
        enabled: true,
        descEn: "Checks for unwanted commas and colons in %i/%I literals.",
        descCn: "",
        versionAdded: "0.41",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintpercentsymbolarray",
    },
    {
        id: "Lint/RaiseException",
        enabled: true,
        descEn: "Checks for `raise` or `fail` statements which are raising `Exception` class.",
        descCn: "",
        versionAdded: "0.81",
        versionChanged: "0.86",
        paramList: [
            {
                param: "AllowedImplicitNamespaces",
                defaultValue: ["Gem"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintraiseexception",
    },
    {
        id: "Lint/RandOne",
        enabled: true,
        descEn: "Checks for `rand(1)` calls. Such calls always return `0` and most likely a mistake.",
        descCn: "",
        versionAdded: "0.36",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrandone",
    },
    {
        id: "Lint/RedundantCopDisableDirective",
        enabled: true,
        descEn: "Checks for rubocop:disable comments that can be removed. Note: this cop is not disabled when disabling all cops. It must be explicitly disabled.",
        descCn: "",
        versionAdded: "0.76",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantcopdisabledirective",
    },
    {
        id: "Lint/RedundantCopEnableDirective",
        enabled: true,
        descEn: "Checks for rubocop:enable comments that can be removed.",
        descCn: "",
        versionAdded: "0.76",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantcopenabledirective",
    },
    {
        id: "Lint/RedundantDirGlobSort",
        enabled: "pending",
        descEn: "Checks for redundant `sort` method to `Dir.glob` and `Dir[]`.",
        descCn: "",
        versionAdded: "1.8",
        versionChanged: "1.26",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantdirglobsort",
    },
    {
        id: "Lint/RedundantRequireStatement",
        enabled: true,
        descEn: "Checks for unnecessary `require` statement.",
        descCn: "",
        versionAdded: "0.76",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantrequirestatement",
    },
    {
        id: "Lint/RedundantSafeNavigation",
        enabled: true,
        descEn: "Checks for redundant safe navigation calls.",
        descCn: "",
        versionAdded: "0.93",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: ["instance_of?", "kind_of?", "is_a?", "eql?", "respond_to?", "equal?"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantsafenavigation",
    },
    {
        id: "Lint/RedundantSplatExpansion",
        enabled: true,
        descEn: "Checks for splat unnecessarily being called on literals.",
        descCn: "",
        versionAdded: "0.76",
        versionChanged: "1.7",
        paramList: [
            {
                param: "AllowPercentLiteralArrayArgument",
                defaultValue: true,
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantsplatexpansion",
    },
    {
        id: "Lint/RedundantStringCoercion",
        enabled: true,
        descEn: "Checks for Object#to_s usage in string interpolation.",
        descCn: "",
        versionAdded: "0.19",
        versionChanged: "0.77",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantstringcoercion",
    },
    {
        id: "Lint/RedundantWithIndex",
        enabled: true,
        descEn: "Checks for redundant `with_index`.",
        descCn: "",
        versionAdded: "0.50",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantwithindex",
    },
    {
        id: "Lint/RedundantWithObject",
        enabled: true,
        descEn: "Checks for redundant `with_object`.",
        descCn: "",
        versionAdded: "0.51",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintredundantwithobject",
    },
    {
        id: "Lint/RefinementImportMethods",
        enabled: "pending",
        descEn: "Use `Refinement#import_methods` when using `include` or `prepend` in `refine` block.",
        descCn: "",
        versionAdded: "1.27",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrefinementimportmethods",
    },
    {
        id: "Lint/RegexpAsCondition",
        enabled: true,
        descEn: "Do not use regexp literal as a condition. The regexp literal matches `$_` implicitly.",
        descCn: "",
        versionAdded: "0.51",
        versionChanged: "0.86",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintregexpascondition",
    },
    {
        id: "Lint/RequireParentheses",
        enabled: true,
        descEn: "Use parentheses in the method call to avoid confusion about precedence.",
        descCn: "",
        versionAdded: "0.18",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrequireparentheses",
    },
    {
        id: "Lint/RequireRangeParentheses",
        enabled: "pending",
        descEn: "Checks that a range literal is enclosed in parentheses when the end of the range is at a line break.",
        descCn: "",
        versionAdded: "1.32",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrequirerangeparentheses",
    },
    {
        id: "Lint/RequireRelativeSelfPath",
        enabled: "pending",
        descEn: "Checks for uses a file requiring itself with `require_relative`.",
        descCn: "",
        versionAdded: "1.22",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrequirerelativeselfpath",
    },
    {
        id: "Lint/RescueException",
        enabled: true,
        descEn: "Avoid rescuing the Exception class.",
        descCn: "",
        versionAdded: "0.9",
        versionChanged: "0.27",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrescueexception",
    },
    {
        id: "Lint/RescueType",
        enabled: true,
        descEn: "Avoid rescuing from non constants that could result in a `TypeError`.",
        descCn: "",
        versionAdded: "0.49",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintrescuetype",
    },
    {
        id: "Lint/ReturnInVoidContext",
        enabled: true,
        descEn: "Checks for return in void context.",
        descCn: "",
        versionAdded: "0.50",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintreturninvoidcontext",
    },
    {
        id: "Lint/SafeNavigationChain",
        enabled: true,
        descEn: "Do not chain ordinary method call after safe navigation operator.",
        descCn: "",
        versionAdded: "0.47",
        versionChanged: "0.77",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: ["present?", "blank?", "presence", "try", "try!", "in?"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsafenavigationchain",
    },
    {
        id: "Lint/SafeNavigationConsistency",
        enabled: true,
        descEn: "Check to make sure that if safe navigation is used for a method call in an `&&` or `||` condition that safe navigation is used for all method calls on that same object.",
        descCn: "",
        versionAdded: "0.55",
        versionChanged: "0.77",
        paramList: [
            {
                param: "AllowedMethods",
                defaultValue: ["present?", "blank?", "presence", "try", "try!"],
            }
        ],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsafenavigationconsistency",
    },
    {
        id: "Lint/SafeNavigationWithEmpty",
        enabled: true,
        descEn: "Avoid `foo&.empty?` in conditionals.",
        descCn: "",
        versionAdded: "0.62",
        versionChanged: "0.87",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsafenavigationwithempty",
    },
    {
        id: "Lint/ScriptPermission",
        enabled: true,
        descEn: "Grant script file execute permission.",
        descCn: "",
        versionAdded: "0.49",
        versionChanged: "0.50",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintscriptpermission",
    },
    {
        id: "Lint/SelfAssignment",
        enabled: true,
        descEn: "Checks for self-assignments.",
        descCn: "",
        versionAdded: "0.89",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintselfassignment",
    },
    {
        id: "Lint/SendWithMixinArgument",
        enabled: true,
        descEn: "Checks for `send` method when using mixin.",
        descCn: "",
        versionAdded: "0.75",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsendwithmixinargument",
    },
    {
        id: "Lint/ShadowedArgument",
        enabled: true,
        descEn: "Avoid reassigning arguments before they were used.",
        descCn: "",
        versionAdded: "0.52",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintshadowedargument",
    },
    {
        id: "Lint/ShadowedException",
        enabled: true,
        descEn: "Avoid rescuing a higher level exception before a lower level exception.",
        descCn: "",
        versionAdded: "0.41",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintshadowedexception",
    },
    {
        id: "Lint/ShadowingOuterLocalVariable",
        enabled: true,
        descEn: "Do not use the same name as outer local variable for block arguments or block local variables.",
        descCn: "",
        versionAdded: "0.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintshadowingouterlocalvariable",
    },
    {
        id: "Lint/StructNewOverride",
        enabled: true,
        descEn: "Disallow overriding the `Struct` built-in methods via `Struct.new`.",
        descCn: "",
        versionAdded: "0.81",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintstructnewoverride",
    },
    {
        id: "Lint/SuppressedException",
        enabled: true,
        descEn: "Don't suppress exceptions",
        descCn: "",
        versionAdded: "0.9",
        versionChanged: "1.12",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsuppressedexception",
    },
    {
        id: "Lint/SymbolConversion",
        enabled: "pending",
        descEn: "Checks for unnecessary symbol conversions.",
        descCn: "",
        versionAdded: "1.9",
        versionChanged: "1.16",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsymbolconversion",
    },
    {
        id: "Lint/Syntax",
        enabled: true,
        descEn: "Checks for syntax errors.",
        descCn: "",
        versionAdded: "0.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintsyntax",
    },
    {
        id: "Lint/ToEnumArguments",
        enabled: "pending",
        descEn: "Ensures that `to_enum`/`enum_for`, called for the current method, has correct arguments.",
        descCn: "",
        versionAdded: "1.1",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linttoenumarguments",
    },
    {
        id: "Lint/ToJSON",
        enabled: true,
        descEn: "Ensure #to_json includes an optional argument.",
        descCn: "",
        versionAdded: "0.66",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linttojson",
    },
    {
        id: "Lint/TopLevelReturnWithArgument",
        enabled: true,
        descEn: "Detects top level return statements with argument.",
        descCn: "",
        versionAdded: "0.89",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linttoplevelreturnwithargument",
    },
    {
        id: "Lint/TrailingCommaInAttributeDeclaration",
        enabled: true,
        descEn: "Checks for trailing commas in attribute declarations.",
        descCn: "",
        versionAdded: "0.90",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linttrailingcommainattributedeclaration",
    },
    {
        id: "Lint/TripleQuotes",
        enabled: "pending",
        descEn: "Checks for useless triple quote constructs.",
        descCn: "",
        versionAdded: "1.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linttriplequotes",
    },
    {
        id: "Lint/UnderscorePrefixedVariableName",
        enabled: true,
        descEn: "Do not use prefix `_` for a variable that is used.",
        descCn: "",
        versionAdded: "0.21",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunderscoreprefixedvariablename",
    },
    {
        id: "Lint/UnexpectedBlockArity",
        enabled: "pending",
        descEn: "Looks for blocks that have fewer arguments that the calling method expects.",
        descCn: "",
        versionAdded: "1.5",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunexpectedblockarity",
    },
    {
        id: "Lint/UnifiedInteger",
        enabled: true,
        descEn: "Use Integer instead of Fixnum or Bignum.",
        descCn: "",
        versionAdded: "0.43",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunifiedinteger",
    },
    {
        id: "Lint/UnmodifiedReduceAccumulator",
        enabled: "pending",
        descEn: "Checks for `reduce` or `inject` blocks that do not update the accumulator each iteration.",
        descCn: "",
        versionAdded: "1.1",
        versionChanged: "1.5",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunmodifiedreduceaccumulator",
    },
    {
        id: "Lint/UnreachableCode",
        enabled: true,
        descEn: "Unreachable code.",
        descCn: "",
        versionAdded: "0.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunreachablecode",
    },
    {
        id: "Lint/UnreachableLoop",
        enabled: true,
        descEn: "Checks for loops that will have at most one iteration.",
        descCn: "",
        versionAdded: "0.89",
        versionChanged: "1.7",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunreachableloop",
    },
    {
        id: "Lint/UnusedBlockArgument",
        enabled: true,
        descEn: "Checks for unused block arguments.",
        descCn: "",
        versionAdded: "0.21",
        versionChanged: "0.22",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunusedblockargument",
    },
    {
        id: "Lint/UnusedMethodArgument",
        enabled: true,
        descEn: "Checks for unused method arguments.",
        descCn: "",
        versionAdded: "0.21",
        versionChanged: "0.81",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintunusedmethodargument",
    },
    {
        id: "Lint/UriEscapeUnescape",
        enabled: true,
        descEn: `\`URI.escape\` method is obsolete and should not be used. Instead, use
        \`CGI.escape\`, \`URI.encode_www_form\` or \`URI.encode_www_form_component\`
        depending on your specific use case.
        Also \`URI.unescape\` method is obsolete and should not be used. Instead, use
        \`CGI.unescape\`, \`URI.decode_www_form\` or \`URI.decode_www_form_component\`
        depending on your specific use case.`,
        descCn: "",
        versionAdded: "0.50",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linturiescapeunescape",
    },
    {
        id: "Lint/UriRegexp",
        enabled: true,
        descEn: "Use `URI::DEFAULT_PARSER.make_regexp` instead of `URI.regexp`.",
        descCn: "",
        versionAdded: "0.50",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#linturiregexp",
    },
    {
        id: "Lint/UselessAccessModifier",
        enabled: true,
        descEn: "Checks for useless access modifiers.",
        descCn: "",
        versionAdded: "0.20",
        versionChanged: "0.83",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselessaccessmodifier",
    },
    {
        id: "Lint/UselessAssignment",
        enabled: true,
        descEn: "Checks for useless assignment to a local variable.",
        descCn: "",
        versionAdded: "0.11",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselessassignment",
    },
    {
        id: "Lint/UselessElseWithoutRescue",
        enabled: true,
        descEn: "Checks for useless `else` in `begin..end` without `rescue`.",
        descCn: "",
        versionAdded: "0.17",
        versionChanged: "1.31",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselesselsewithoutrescue",
    },
    {
        id: "Lint/UselessMethodDefinition",
        enabled: true,
        descEn: "Checks for useless method definitions.",
        descCn: "",
        versionAdded: "0.90",
        versionChanged: "0.91",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselessmethoddefinition",
    },
    {
        id: "Lint/UselessRescue",
        enabled: "pending",
        descEn: "Checks for useless `rescue`s.",
        descCn: "",
        versionAdded: "1.43",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselessrescue",
    },
    {
        id: "Lint/UselessRuby2Keywords",
        enabled: "pending",
        descEn: "Finds unnecessary uses of `ruby2_keywords`.",
        descCn: "",
        versionAdded: "1.23",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselessruby2keywords",
    },
    {
        id: "Lint/UselessSetterCall",
        enabled: true,
        descEn: "Checks for useless setter call to a local variable.",
        descCn: "",
        versionAdded: "0.13",
        versionChanged: "1.2",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselesssettercall",
    },
    {
        id: "Lint/UselessTimes",
        enabled: true,
        descEn: "Checks for useless `Integer#times` calls.",
        descCn: "",
        versionAdded: "0.91",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintuselesstimes",
    },
    {
        id: "Lint/Void",
        enabled: true,
        descEn: "Possible use of operator/literal/variable in void context.",
        descCn: "",
        versionAdded: "0.9",
        paramList: [],
        url: "https://docs.rubocop.org/rubocop/1.50/cops_lint.html#lintvoid",
    },
];